using System;
using System.Runtime.InteropServices;
using System.Text;

namespace GLDotNet
{
	internal static partial class GLNative
	{
		private const string Library = "opengl32.dll";

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glAccum", ExactSpelling=true)]
		internal static extern void Accum(uint op, float value);

		internal delegate void ActiveTexture(uint texture);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glAlphaFunc", ExactSpelling=true)]
		internal static extern void AlphaFunc(uint func, float @ref);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glAreTexturesResident", ExactSpelling=true)]
		internal static extern unsafe bool AreTexturesResident(int n, uint* textures, [Out] bool* residences);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glArrayElement", ExactSpelling=true)]
		internal static extern void ArrayElement(int i);

		internal delegate void AttachShader(uint program, uint shader);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glBegin", ExactSpelling=true)]
		internal static extern void Begin(uint mode);

		internal delegate void BeginConditionalRender(uint id, uint mode);

		internal delegate void BeginQuery(uint target, uint id);

		internal delegate void BeginTransformFeedback(uint primitiveMode);

		internal unsafe delegate void BindAttribLocation(uint program, uint index, string name);

		internal delegate void BindBuffer(uint target, uint buffer);

		internal delegate void BindBufferBase(uint target, uint index, uint buffer);

		internal delegate void BindBufferRange(uint target, uint index, uint buffer, IntPtr offset, IntPtr size);

		internal unsafe delegate void BindFragDataLocation(uint program, uint color, string name);

		internal unsafe delegate void BindFragDataLocationIndexed(uint program, uint colorNumber, uint index, string name);

		internal delegate void BindFramebuffer(uint target, uint framebuffer);

		internal delegate void BindRenderbuffer(uint target, uint renderbuffer);

		internal delegate void BindSampler(uint unit, uint sampler);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glBindTexture", ExactSpelling=true)]
		internal static extern void BindTexture(uint target, uint texture);

		internal delegate void BindVertexArray(uint array);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glBitmap", ExactSpelling=true)]
		internal static extern unsafe void Bitmap(int width, int height, float xorig, float yorig, float xmove, float ymove, byte* bitmap);

		internal delegate void BlendColor(float red, float green, float blue, float alpha);

		internal delegate void BlendEquation(uint mode);

		internal delegate void BlendEquationSeparate(uint modeRGB, uint modeAlpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glBlendFunc", ExactSpelling=true)]
		internal static extern void BlendFunc(uint sfactor, uint dfactor);

		internal delegate void BlendFuncSeparate(uint sfactorRGB, uint dfactorRGB, uint sfactorAlpha, uint dfactorAlpha);

		internal delegate void BlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, uint mask, uint filter);

		internal unsafe delegate void BufferData(uint target, IntPtr size, IntPtr data, uint usage);

		internal unsafe delegate void BufferSubData(uint target, IntPtr offset, IntPtr size, IntPtr data);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCallList", ExactSpelling=true)]
		internal static extern void CallList(uint list);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCallLists", ExactSpelling=true)]
		internal static extern unsafe void CallLists(int n, uint type, IntPtr lists);

		internal delegate uint CheckFramebufferStatus(uint target);

		internal delegate void ClampColor(uint target, uint clamp);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClear", ExactSpelling=true)]
		internal static extern void Clear(uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClearAccum", ExactSpelling=true)]
		internal static extern void ClearAccum(float red, float green, float blue, float alpha);

		internal delegate void ClearBufferfi(uint buffer, int drawbuffer, float depth, int stencil);

		internal unsafe delegate void ClearBufferfv(uint buffer, int drawbuffer, float* value);

		internal unsafe delegate void ClearBufferiv(uint buffer, int drawbuffer, int* value);

		internal unsafe delegate void ClearBufferuiv(uint buffer, int drawbuffer, uint* value);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClearColor", ExactSpelling=true)]
		internal static extern void ClearColor(float red, float green, float blue, float alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClearDepth", ExactSpelling=true)]
		internal static extern void ClearDepth(double depth);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClearIndex", ExactSpelling=true)]
		internal static extern void ClearIndex(float c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClearStencil", ExactSpelling=true)]
		internal static extern void ClearStencil(int s);

		internal delegate void ClientActiveTexture(uint texture);

		internal delegate uint ClientWaitSync(IntPtr sync, uint flags, ulong timeout);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glClipPlane", ExactSpelling=true)]
		internal static extern unsafe void ClipPlane(uint plane, double* equation);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3b", ExactSpelling=true)]
		internal static extern void Color3b(sbyte red, sbyte green, sbyte blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3bv", ExactSpelling=true)]
		internal static extern unsafe void Color3bv(sbyte* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3d", ExactSpelling=true)]
		internal static extern void Color3d(double red, double green, double blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3dv", ExactSpelling=true)]
		internal static extern unsafe void Color3dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3f", ExactSpelling=true)]
		internal static extern void Color3f(float red, float green, float blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3fv", ExactSpelling=true)]
		internal static extern unsafe void Color3fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3i", ExactSpelling=true)]
		internal static extern void Color3i(int red, int green, int blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3iv", ExactSpelling=true)]
		internal static extern unsafe void Color3iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3s", ExactSpelling=true)]
		internal static extern void Color3s(short red, short green, short blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3sv", ExactSpelling=true)]
		internal static extern unsafe void Color3sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3ub", ExactSpelling=true)]
		internal static extern void Color3ub(byte red, byte green, byte blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3ubv", ExactSpelling=true)]
		internal static extern unsafe void Color3ubv(byte* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3ui", ExactSpelling=true)]
		internal static extern void Color3ui(uint red, uint green, uint blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3uiv", ExactSpelling=true)]
		internal static extern unsafe void Color3uiv(uint* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3us", ExactSpelling=true)]
		internal static extern void Color3us(ushort red, ushort green, ushort blue);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor3usv", ExactSpelling=true)]
		internal static extern unsafe void Color3usv(ushort* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4b", ExactSpelling=true)]
		internal static extern void Color4b(sbyte red, sbyte green, sbyte blue, sbyte alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4bv", ExactSpelling=true)]
		internal static extern unsafe void Color4bv(sbyte* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4d", ExactSpelling=true)]
		internal static extern void Color4d(double red, double green, double blue, double alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4dv", ExactSpelling=true)]
		internal static extern unsafe void Color4dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4f", ExactSpelling=true)]
		internal static extern void Color4f(float red, float green, float blue, float alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4fv", ExactSpelling=true)]
		internal static extern unsafe void Color4fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4i", ExactSpelling=true)]
		internal static extern void Color4i(int red, int green, int blue, int alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4iv", ExactSpelling=true)]
		internal static extern unsafe void Color4iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4s", ExactSpelling=true)]
		internal static extern void Color4s(short red, short green, short blue, short alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4sv", ExactSpelling=true)]
		internal static extern unsafe void Color4sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4ub", ExactSpelling=true)]
		internal static extern void Color4ub(byte red, byte green, byte blue, byte alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4ubv", ExactSpelling=true)]
		internal static extern unsafe void Color4ubv(byte* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4ui", ExactSpelling=true)]
		internal static extern void Color4ui(uint red, uint green, uint blue, uint alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4uiv", ExactSpelling=true)]
		internal static extern unsafe void Color4uiv(uint* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4us", ExactSpelling=true)]
		internal static extern void Color4us(ushort red, ushort green, ushort blue, ushort alpha);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColor4usv", ExactSpelling=true)]
		internal static extern unsafe void Color4usv(ushort* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColorMask", ExactSpelling=true)]
		internal static extern void ColorMask(bool red, bool green, bool blue, bool alpha);

		internal delegate void ColorMaski(uint index, bool r, bool g, bool b, bool a);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColorMaterial", ExactSpelling=true)]
		internal static extern void ColorMaterial(uint face, uint mode);

		internal delegate void ColorP3ui(uint type, uint color);

		internal unsafe delegate void ColorP3uiv(uint type, uint* color);

		internal delegate void ColorP4ui(uint type, uint color);

		internal unsafe delegate void ColorP4uiv(uint type, uint* color);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glColorPointer", ExactSpelling=true)]
		internal static extern unsafe void ColorPointer(int size, uint type, int stride, IntPtr pointer);

		internal delegate void CompileShader(uint shader);

		internal unsafe delegate void CompressedTexImage1D(uint target, int level, uint internalformat, int width, int border, int imageSize, IntPtr data);

		internal unsafe delegate void CompressedTexImage2D(uint target, int level, uint internalformat, int width, int height, int border, int imageSize, IntPtr data);

		internal unsafe delegate void CompressedTexImage3D(uint target, int level, uint internalformat, int width, int height, int depth, int border, int imageSize, IntPtr data);

		internal unsafe delegate void CompressedTexSubImage1D(uint target, int level, int xoffset, int width, uint format, int imageSize, IntPtr data);

		internal unsafe delegate void CompressedTexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, int imageSize, IntPtr data);

		internal unsafe delegate void CompressedTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, int imageSize, IntPtr data);

		internal delegate void CopyBufferSubData(uint readTarget, uint writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCopyPixels", ExactSpelling=true)]
		internal static extern void CopyPixels(int x, int y, int width, int height, uint type);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCopyTexImage1D", ExactSpelling=true)]
		internal static extern void CopyTexImage1D(uint target, int level, uint internalformat, int x, int y, int width, int border);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCopyTexImage2D", ExactSpelling=true)]
		internal static extern void CopyTexImage2D(uint target, int level, uint internalformat, int x, int y, int width, int height, int border);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCopyTexSubImage1D", ExactSpelling=true)]
		internal static extern void CopyTexSubImage1D(uint target, int level, int xoffset, int x, int y, int width);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCopyTexSubImage2D", ExactSpelling=true)]
		internal static extern void CopyTexSubImage2D(uint target, int level, int xoffset, int yoffset, int x, int y, int width, int height);

		internal delegate void CopyTexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);

		internal delegate uint CreateProgram();

		internal delegate uint CreateShader(uint type);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glCullFace", ExactSpelling=true)]
		internal static extern void CullFace(uint mode);

		internal unsafe delegate void DeleteBuffers(int n, uint* buffers);

		internal unsafe delegate void DeleteFramebuffers(int n, uint* framebuffers);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDeleteLists", ExactSpelling=true)]
		internal static extern void DeleteLists(uint list, int range);

		internal delegate void DeleteProgram(uint program);

		internal unsafe delegate void DeleteQueries(int n, uint* ids);

		internal unsafe delegate void DeleteRenderbuffers(int n, uint* renderbuffers);

		internal unsafe delegate void DeleteSamplers(int count, uint* samplers);

		internal delegate void DeleteShader(uint shader);

		internal delegate void DeleteSync(IntPtr sync);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDeleteTextures", ExactSpelling=true)]
		internal static extern unsafe void DeleteTextures(int n, uint* textures);

		internal unsafe delegate void DeleteVertexArrays(int n, uint* arrays);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDepthFunc", ExactSpelling=true)]
		internal static extern void DepthFunc(uint func);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDepthMask", ExactSpelling=true)]
		internal static extern void DepthMask(bool flag);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDepthRange", ExactSpelling=true)]
		internal static extern void DepthRange(double near, double far);

		internal delegate void DetachShader(uint program, uint shader);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDisable", ExactSpelling=true)]
		internal static extern void Disable(uint cap);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDisableClientState", ExactSpelling=true)]
		internal static extern void DisableClientState(uint array);

		internal delegate void Disablei(uint target, uint index);

		internal delegate void DisableVertexAttribArray(uint index);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDrawArrays", ExactSpelling=true)]
		internal static extern void DrawArrays(uint mode, int first, int count);

		internal delegate void DrawArraysInstanced(uint mode, int first, int count, int instancecount);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDrawBuffer", ExactSpelling=true)]
		internal static extern void DrawBuffer(uint mode);

		internal unsafe delegate void DrawBuffers(int n, uint* bufs);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDrawElements", ExactSpelling=true)]
		internal static extern unsafe void DrawElements(uint mode, int count, uint type, IntPtr indices);

		internal unsafe delegate void DrawElementsBaseVertex(uint mode, int count, uint type, IntPtr indices, int basevertex);

		internal unsafe delegate void DrawElementsInstanced(uint mode, int count, uint type, IntPtr indices, int instancecount);

		internal unsafe delegate void DrawElementsInstancedBaseVertex(uint mode, int count, uint type, IntPtr indices, int instancecount, int basevertex);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glDrawPixels", ExactSpelling=true)]
		internal static extern unsafe void DrawPixels(int width, int height, uint format, uint type, IntPtr pixels);

		internal unsafe delegate void DrawRangeElements(uint mode, uint start, uint end, int count, uint type, IntPtr indices);

		internal unsafe delegate void DrawRangeElementsBaseVertex(uint mode, uint start, uint end, int count, uint type, IntPtr indices, int basevertex);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEdgeFlag", ExactSpelling=true)]
		internal static extern void EdgeFlag(bool flag);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEdgeFlagPointer", ExactSpelling=true)]
		internal static extern unsafe void EdgeFlagPointer(int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEdgeFlagv", ExactSpelling=true)]
		internal static extern unsafe void EdgeFlagv(bool* flag);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEnable", ExactSpelling=true)]
		internal static extern void Enable(uint cap);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEnableClientState", ExactSpelling=true)]
		internal static extern void EnableClientState(uint array);

		internal delegate void Enablei(uint target, uint index);

		internal delegate void EnableVertexAttribArray(uint index);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEnd", ExactSpelling=true)]
		internal static extern void End();

		internal delegate void EndConditionalRender();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEndList", ExactSpelling=true)]
		internal static extern void EndList();

		internal delegate void EndQuery(uint target);

		internal delegate void EndTransformFeedback();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord1d", ExactSpelling=true)]
		internal static extern void EvalCoord1d(double u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord1dv", ExactSpelling=true)]
		internal static extern unsafe void EvalCoord1dv(double* u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord1f", ExactSpelling=true)]
		internal static extern void EvalCoord1f(float u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord1fv", ExactSpelling=true)]
		internal static extern unsafe void EvalCoord1fv(float* u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord2d", ExactSpelling=true)]
		internal static extern void EvalCoord2d(double u, double v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord2dv", ExactSpelling=true)]
		internal static extern unsafe void EvalCoord2dv(double* u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord2f", ExactSpelling=true)]
		internal static extern void EvalCoord2f(float u, float v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalCoord2fv", ExactSpelling=true)]
		internal static extern unsafe void EvalCoord2fv(float* u);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalMesh1", ExactSpelling=true)]
		internal static extern void EvalMesh1(uint mode, int i1, int i2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalMesh2", ExactSpelling=true)]
		internal static extern void EvalMesh2(uint mode, int i1, int i2, int j1, int j2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalPoint1", ExactSpelling=true)]
		internal static extern void EvalPoint1(int i);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glEvalPoint2", ExactSpelling=true)]
		internal static extern void EvalPoint2(int i, int j);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFeedbackBuffer", ExactSpelling=true)]
		internal static extern unsafe void FeedbackBuffer(int size, uint type, [Out] float* buffer);

		internal delegate IntPtr FenceSync(uint condition, uint flags);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFinish", ExactSpelling=true)]
		internal static extern void Finish();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFlush", ExactSpelling=true)]
		internal static extern void Flush();

		internal delegate void FlushMappedBufferRange(uint target, IntPtr offset, IntPtr length);

		internal delegate void FogCoordd(double coord);

		internal unsafe delegate void FogCoorddv(double* coord);

		internal delegate void FogCoordf(float coord);

		internal unsafe delegate void FogCoordfv(float* coord);

		internal unsafe delegate void FogCoordPointer(uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFogf", ExactSpelling=true)]
		internal static extern void Fogf(uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFogfv", ExactSpelling=true)]
		internal static extern unsafe void Fogfv(uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFogi", ExactSpelling=true)]
		internal static extern void Fogi(uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFogiv", ExactSpelling=true)]
		internal static extern unsafe void Fogiv(uint pname, int* @params);

		internal delegate void FramebufferRenderbuffer(uint target, uint attachment, uint renderbuffertarget, uint renderbuffer);

		internal delegate void FramebufferTexture(uint target, uint attachment, uint texture, int level);

		internal delegate void FramebufferTexture1D(uint target, uint attachment, uint textarget, uint texture, int level);

		internal delegate void FramebufferTexture2D(uint target, uint attachment, uint textarget, uint texture, int level);

		internal delegate void FramebufferTexture3D(uint target, uint attachment, uint textarget, uint texture, int level, int zoffset);

		internal delegate void FramebufferTextureLayer(uint target, uint attachment, uint texture, int level, int layer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFrontFace", ExactSpelling=true)]
		internal static extern void FrontFace(uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glFrustum", ExactSpelling=true)]
		internal static extern void Frustum(double left, double right, double bottom, double top, double zNear, double zFar);

		internal unsafe delegate void GenBuffers(int n, [Out] uint* buffers);

		internal delegate void GenerateMipmap(uint target);

		internal unsafe delegate void GenFramebuffers(int n, [Out] uint* framebuffers);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGenLists", ExactSpelling=true)]
		internal static extern uint GenLists(int range);

		internal unsafe delegate void GenQueries(int n, [Out] uint* ids);

		internal unsafe delegate void GenRenderbuffers(int n, [Out] uint* renderbuffers);

		internal unsafe delegate void GenSamplers(int count, [Out] uint* samplers);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGenTextures", ExactSpelling=true)]
		internal static extern unsafe void GenTextures(int n, [Out] uint* textures);

		internal unsafe delegate void GenVertexArrays(int n, [Out] uint* arrays);

		internal unsafe delegate void GetActiveAttrib(uint program, uint index, int bufSize, [Out] int* length, [Out] int* size, [Out] uint* type, [Out] StringBuilder name);

		internal unsafe delegate void GetActiveUniform(uint program, uint index, int bufSize, [Out] int* length, [Out] int* size, [Out] uint* type, [Out] StringBuilder name);

		internal unsafe delegate void GetActiveUniformBlockiv(uint program, uint uniformBlockIndex, uint pname, [Out] int* @params);

		internal unsafe delegate void GetActiveUniformBlockName(uint program, uint uniformBlockIndex, int bufSize, [Out] int* length, [Out] StringBuilder uniformBlockName);

		internal unsafe delegate void GetActiveUniformName(uint program, uint uniformIndex, int bufSize, [Out] int* length, [Out] StringBuilder uniformName);

		internal unsafe delegate void GetActiveUniformsiv(uint program, int uniformCount, uint* uniformIndices, uint pname, [Out] int* @params);

		internal unsafe delegate void GetAttachedShaders(uint program, int maxCount, [Out] int* count, [Out] uint* shaders);

		internal unsafe delegate int GetAttribLocation(uint program, string name);

		internal unsafe delegate void GetBooleani_v(uint target, uint index, [Out] bool* data);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetBooleanv", ExactSpelling=true)]
		internal static extern unsafe void GetBooleanv(uint pname, [Out] bool* @params);

		internal unsafe delegate void GetBufferParameteri64v(uint target, uint pname, [Out] long* @params);

		internal unsafe delegate void GetBufferParameteriv(uint target, uint pname, [Out] int* @params);

		internal unsafe delegate void GetBufferPointerv(uint target, uint pname, [Out] IntPtr @params);

		internal unsafe delegate void GetBufferSubData(uint target, IntPtr offset, IntPtr size, [Out] IntPtr data);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetClipPlane", ExactSpelling=true)]
		internal static extern unsafe void GetClipPlane(uint plane, [Out] double* equation);

		internal unsafe delegate void GetCompressedTexImage(uint target, int level, [Out] IntPtr img);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetDoublev", ExactSpelling=true)]
		internal static extern unsafe void GetDoublev(uint pname, [Out] double* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetError", ExactSpelling=true)]
		internal static extern ErrorCode GetError();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetFloatv", ExactSpelling=true)]
		internal static extern unsafe void GetFloatv(uint pname, [Out] float* @params);

		internal unsafe delegate int GetFragDataIndex(uint program, string name);

		internal unsafe delegate int GetFragDataLocation(uint program, string name);

		internal unsafe delegate void GetFramebufferAttachmentParameteriv(uint target, uint attachment, uint pname, [Out] int* @params);

		internal unsafe delegate void GetInteger64i_v(uint target, uint index, [Out] long* data);

		internal unsafe delegate void GetInteger64v(uint pname, [Out] long* @params);

		internal unsafe delegate void GetIntegeri_v(uint target, uint index, [Out] int* data);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetIntegerv", ExactSpelling=true)]
		internal static extern unsafe void GetIntegerv(uint pname, [Out] int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetLightfv", ExactSpelling=true)]
		internal static extern unsafe void GetLightfv(uint light, uint pname, [Out] float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetLightiv", ExactSpelling=true)]
		internal static extern unsafe void GetLightiv(uint light, uint pname, [Out] int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetMapdv", ExactSpelling=true)]
		internal static extern unsafe void GetMapdv(uint target, uint query, [Out] double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetMapfv", ExactSpelling=true)]
		internal static extern unsafe void GetMapfv(uint target, uint query, [Out] float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetMapiv", ExactSpelling=true)]
		internal static extern unsafe void GetMapiv(uint target, uint query, [Out] int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetMaterialfv", ExactSpelling=true)]
		internal static extern unsafe void GetMaterialfv(uint face, uint pname, [Out] float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetMaterialiv", ExactSpelling=true)]
		internal static extern unsafe void GetMaterialiv(uint face, uint pname, [Out] int* @params);

		internal unsafe delegate void GetMultisamplefv(uint pname, uint index, [Out] float* val);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetPixelMapfv", ExactSpelling=true)]
		internal static extern unsafe void GetPixelMapfv(uint map, [Out] float* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetPixelMapuiv", ExactSpelling=true)]
		internal static extern unsafe void GetPixelMapuiv(uint map, [Out] uint* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetPixelMapusv", ExactSpelling=true)]
		internal static extern unsafe void GetPixelMapusv(uint map, [Out] ushort* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetPointerv", ExactSpelling=true)]
		internal static extern unsafe void GetPointerv(uint pname, [Out] IntPtr @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetPolygonStipple", ExactSpelling=true)]
		internal static extern unsafe void GetPolygonStipple([Out] byte* mask);

		internal unsafe delegate void GetProgramInfoLog(uint program, int bufSize, [Out] int* length, [Out] StringBuilder infoLog);

		internal unsafe delegate void GetProgramiv(uint program, uint pname, [Out] int* @params);

		internal unsafe delegate void GetQueryiv(uint target, uint pname, [Out] int* @params);

		internal unsafe delegate void GetQueryObjecti64v(uint id, uint pname, [Out] long* @params);

		internal unsafe delegate void GetQueryObjectiv(uint id, uint pname, [Out] int* @params);

		internal unsafe delegate void GetQueryObjectui64v(uint id, uint pname, [Out] ulong* @params);

		internal unsafe delegate void GetQueryObjectuiv(uint id, uint pname, [Out] uint* @params);

		internal unsafe delegate void GetRenderbufferParameteriv(uint target, uint pname, [Out] int* @params);

		internal unsafe delegate void GetSamplerParameterfv(uint sampler, uint pname, [Out] float* @params);

		internal unsafe delegate void GetSamplerParameterIiv(uint sampler, uint pname, [Out] int* @params);

		internal unsafe delegate void GetSamplerParameterIuiv(uint sampler, uint pname, [Out] uint* @params);

		internal unsafe delegate void GetSamplerParameteriv(uint sampler, uint pname, [Out] int* @params);

		internal unsafe delegate void GetShaderInfoLog(uint shader, int bufSize, [Out] int* length, [Out] StringBuilder infoLog);

		internal unsafe delegate void GetShaderiv(uint shader, uint pname, [Out] int* @params);

		internal unsafe delegate void GetShaderSource(uint shader, int bufSize, [Out] int* length, [Out] StringBuilder source);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetString", ExactSpelling=true)]
		internal static extern byte GetString(uint name);

		internal delegate byte GetStringi(uint name, uint index);

		internal unsafe delegate void GetSynciv(IntPtr sync, uint pname, int bufSize, [Out] int* length, [Out] int* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexEnvfv", ExactSpelling=true)]
		internal static extern unsafe void GetTexEnvfv(uint target, uint pname, [Out] float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexEnviv", ExactSpelling=true)]
		internal static extern unsafe void GetTexEnviv(uint target, uint pname, [Out] int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexGendv", ExactSpelling=true)]
		internal static extern unsafe void GetTexGendv(uint coord, uint pname, [Out] double* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexGenfv", ExactSpelling=true)]
		internal static extern unsafe void GetTexGenfv(uint coord, uint pname, [Out] float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexGeniv", ExactSpelling=true)]
		internal static extern unsafe void GetTexGeniv(uint coord, uint pname, [Out] int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexImage", ExactSpelling=true)]
		internal static extern unsafe void GetTexImage(uint target, int level, uint format, uint type, [Out] IntPtr pixels);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexLevelParameterfv", ExactSpelling=true)]
		internal static extern unsafe void GetTexLevelParameterfv(uint target, int level, uint pname, [Out] float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexLevelParameteriv", ExactSpelling=true)]
		internal static extern unsafe void GetTexLevelParameteriv(uint target, int level, uint pname, [Out] int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexParameterfv", ExactSpelling=true)]
		internal static extern unsafe void GetTexParameterfv(uint target, uint pname, [Out] float* @params);

		internal unsafe delegate void GetTexParameterIiv(uint target, uint pname, [Out] int* @params);

		internal unsafe delegate void GetTexParameterIuiv(uint target, uint pname, [Out] uint* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glGetTexParameteriv", ExactSpelling=true)]
		internal static extern unsafe void GetTexParameteriv(uint target, uint pname, [Out] int* @params);

		internal unsafe delegate void GetTransformFeedbackVarying(uint program, uint index, int bufSize, [Out] int* length, [Out] int* size, [Out] uint* type, [Out] StringBuilder name);

		internal unsafe delegate uint GetUniformBlockIndex(uint program, string uniformBlockName);

		internal unsafe delegate void GetUniformfv(uint program, int location, [Out] float* @params);

		internal unsafe delegate void GetUniformIndices(uint program, int uniformCount, string[] uniformNames, [Out] uint* uniformIndices);

		internal unsafe delegate void GetUniformiv(uint program, int location, [Out] int* @params);

		internal unsafe delegate int GetUniformLocation(uint program, string name);

		internal unsafe delegate void GetUniformuiv(uint program, int location, [Out] uint* @params);

		internal unsafe delegate void GetVertexAttribdv(uint index, uint pname, [Out] double* @params);

		internal unsafe delegate void GetVertexAttribfv(uint index, uint pname, [Out] float* @params);

		internal unsafe delegate void GetVertexAttribIiv(uint index, uint pname, [Out] int* @params);

		internal unsafe delegate void GetVertexAttribIuiv(uint index, uint pname, [Out] uint* @params);

		internal unsafe delegate void GetVertexAttribiv(uint index, uint pname, [Out] int* @params);

		internal unsafe delegate void GetVertexAttribPointerv(uint index, uint pname, [Out] IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glHint", ExactSpelling=true)]
		internal static extern void Hint(uint target, uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexd", ExactSpelling=true)]
		internal static extern void Indexd(double c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexdv", ExactSpelling=true)]
		internal static extern unsafe void Indexdv(double* c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexf", ExactSpelling=true)]
		internal static extern void Indexf(float c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexfv", ExactSpelling=true)]
		internal static extern unsafe void Indexfv(float* c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexi", ExactSpelling=true)]
		internal static extern void Indexi(int c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexiv", ExactSpelling=true)]
		internal static extern unsafe void Indexiv(int* c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexMask", ExactSpelling=true)]
		internal static extern void IndexMask(uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexPointer", ExactSpelling=true)]
		internal static extern unsafe void IndexPointer(uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexs", ExactSpelling=true)]
		internal static extern void Indexs(short c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexsv", ExactSpelling=true)]
		internal static extern unsafe void Indexsv(short* c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexub", ExactSpelling=true)]
		internal static extern void Indexub(byte c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIndexubv", ExactSpelling=true)]
		internal static extern unsafe void Indexubv(byte* c);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glInitNames", ExactSpelling=true)]
		internal static extern void InitNames();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glInterleavedArrays", ExactSpelling=true)]
		internal static extern unsafe void InterleavedArrays(uint format, int stride, IntPtr pointer);

		internal delegate bool IsBuffer(uint buffer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIsEnabled", ExactSpelling=true)]
		internal static extern bool IsEnabled(uint cap);

		internal delegate bool IsEnabledi(uint target, uint index);

		internal delegate bool IsFramebuffer(uint framebuffer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIsList", ExactSpelling=true)]
		internal static extern bool IsList(uint list);

		internal delegate bool IsProgram(uint program);

		internal delegate bool IsQuery(uint id);

		internal delegate bool IsRenderbuffer(uint renderbuffer);

		internal delegate bool IsSampler(uint sampler);

		internal delegate bool IsShader(uint shader);

		internal delegate bool IsSync(IntPtr sync);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glIsTexture", ExactSpelling=true)]
		internal static extern bool IsTexture(uint texture);

		internal delegate bool IsVertexArray(uint array);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightf", ExactSpelling=true)]
		internal static extern void Lightf(uint light, uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightfv", ExactSpelling=true)]
		internal static extern unsafe void Lightfv(uint light, uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLighti", ExactSpelling=true)]
		internal static extern void Lighti(uint light, uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightiv", ExactSpelling=true)]
		internal static extern unsafe void Lightiv(uint light, uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightModelf", ExactSpelling=true)]
		internal static extern void LightModelf(uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightModelfv", ExactSpelling=true)]
		internal static extern unsafe void LightModelfv(uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightModeli", ExactSpelling=true)]
		internal static extern void LightModeli(uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLightModeliv", ExactSpelling=true)]
		internal static extern unsafe void LightModeliv(uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLineStipple", ExactSpelling=true)]
		internal static extern void LineStipple(int factor, ushort pattern);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLineWidth", ExactSpelling=true)]
		internal static extern void LineWidth(float width);

		internal delegate void LinkProgram(uint program);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glListBase", ExactSpelling=true)]
		internal static extern void ListBase(uint @base);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLoadIdentity", ExactSpelling=true)]
		internal static extern void LoadIdentity();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLoadMatrixd", ExactSpelling=true)]
		internal static extern unsafe void LoadMatrixd(double* m);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLoadMatrixf", ExactSpelling=true)]
		internal static extern unsafe void LoadMatrixf(float* m);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLoadName", ExactSpelling=true)]
		internal static extern void LoadName(uint name);

		internal unsafe delegate void LoadTransposeMatrixd(double* m);

		internal unsafe delegate void LoadTransposeMatrixf(float* m);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glLogicOp", ExactSpelling=true)]
		internal static extern void LogicOp(uint opcode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMap1d", ExactSpelling=true)]
		internal static extern unsafe void Map1d(uint target, double u1, double u2, int stride, int order, double* points);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMap1f", ExactSpelling=true)]
		internal static extern unsafe void Map1f(uint target, float u1, float u2, int stride, int order, float* points);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMap2d", ExactSpelling=true)]
		internal static extern unsafe void Map2d(uint target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double* points);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMap2f", ExactSpelling=true)]
		internal static extern unsafe void Map2f(uint target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float* points);

		internal delegate void MapBuffer(uint target, uint access);

		internal delegate void MapBufferRange(uint target, IntPtr offset, IntPtr length, uint access);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMapGrid1d", ExactSpelling=true)]
		internal static extern void MapGrid1d(int un, double u1, double u2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMapGrid1f", ExactSpelling=true)]
		internal static extern void MapGrid1f(int un, float u1, float u2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMapGrid2d", ExactSpelling=true)]
		internal static extern void MapGrid2d(int un, double u1, double u2, int vn, double v1, double v2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMapGrid2f", ExactSpelling=true)]
		internal static extern void MapGrid2f(int un, float u1, float u2, int vn, float v1, float v2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMaterialf", ExactSpelling=true)]
		internal static extern void Materialf(uint face, uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMaterialfv", ExactSpelling=true)]
		internal static extern unsafe void Materialfv(uint face, uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMateriali", ExactSpelling=true)]
		internal static extern void Materiali(uint face, uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMaterialiv", ExactSpelling=true)]
		internal static extern unsafe void Materialiv(uint face, uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMatrixMode", ExactSpelling=true)]
		internal static extern void MatrixMode(uint mode);

		internal unsafe delegate void MultiDrawArrays(uint mode, int* first, int* count, int drawcount);

		internal unsafe delegate void MultiDrawElements(uint mode, int* count, uint type, IntPtr indices, int drawcount);

		internal unsafe delegate void MultiDrawElementsBaseVertex(uint mode, int* count, uint type, IntPtr indices, int drawcount, int* basevertex);

		internal delegate void MultiTexCoord1d(uint target, double s);

		internal unsafe delegate void MultiTexCoord1dv(uint target, double* v);

		internal delegate void MultiTexCoord1f(uint target, float s);

		internal unsafe delegate void MultiTexCoord1fv(uint target, float* v);

		internal delegate void MultiTexCoord1i(uint target, int s);

		internal unsafe delegate void MultiTexCoord1iv(uint target, int* v);

		internal delegate void MultiTexCoord1s(uint target, short s);

		internal unsafe delegate void MultiTexCoord1sv(uint target, short* v);

		internal delegate void MultiTexCoord2d(uint target, double s, double t);

		internal unsafe delegate void MultiTexCoord2dv(uint target, double* v);

		internal delegate void MultiTexCoord2f(uint target, float s, float t);

		internal unsafe delegate void MultiTexCoord2fv(uint target, float* v);

		internal delegate void MultiTexCoord2i(uint target, int s, int t);

		internal unsafe delegate void MultiTexCoord2iv(uint target, int* v);

		internal delegate void MultiTexCoord2s(uint target, short s, short t);

		internal unsafe delegate void MultiTexCoord2sv(uint target, short* v);

		internal delegate void MultiTexCoord3d(uint target, double s, double t, double r);

		internal unsafe delegate void MultiTexCoord3dv(uint target, double* v);

		internal delegate void MultiTexCoord3f(uint target, float s, float t, float r);

		internal unsafe delegate void MultiTexCoord3fv(uint target, float* v);

		internal delegate void MultiTexCoord3i(uint target, int s, int t, int r);

		internal unsafe delegate void MultiTexCoord3iv(uint target, int* v);

		internal delegate void MultiTexCoord3s(uint target, short s, short t, short r);

		internal unsafe delegate void MultiTexCoord3sv(uint target, short* v);

		internal delegate void MultiTexCoord4d(uint target, double s, double t, double r, double q);

		internal unsafe delegate void MultiTexCoord4dv(uint target, double* v);

		internal delegate void MultiTexCoord4f(uint target, float s, float t, float r, float q);

		internal unsafe delegate void MultiTexCoord4fv(uint target, float* v);

		internal delegate void MultiTexCoord4i(uint target, int s, int t, int r, int q);

		internal unsafe delegate void MultiTexCoord4iv(uint target, int* v);

		internal delegate void MultiTexCoord4s(uint target, short s, short t, short r, short q);

		internal unsafe delegate void MultiTexCoord4sv(uint target, short* v);

		internal delegate void MultiTexCoordP1ui(uint texture, uint type, uint coords);

		internal unsafe delegate void MultiTexCoordP1uiv(uint texture, uint type, uint* coords);

		internal delegate void MultiTexCoordP2ui(uint texture, uint type, uint coords);

		internal unsafe delegate void MultiTexCoordP2uiv(uint texture, uint type, uint* coords);

		internal delegate void MultiTexCoordP3ui(uint texture, uint type, uint coords);

		internal unsafe delegate void MultiTexCoordP3uiv(uint texture, uint type, uint* coords);

		internal delegate void MultiTexCoordP4ui(uint texture, uint type, uint coords);

		internal unsafe delegate void MultiTexCoordP4uiv(uint texture, uint type, uint* coords);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMultMatrixd", ExactSpelling=true)]
		internal static extern unsafe void MultMatrixd(double* m);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glMultMatrixf", ExactSpelling=true)]
		internal static extern unsafe void MultMatrixf(float* m);

		internal unsafe delegate void MultTransposeMatrixd(double* m);

		internal unsafe delegate void MultTransposeMatrixf(float* m);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNewList", ExactSpelling=true)]
		internal static extern void NewList(uint list, uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3b", ExactSpelling=true)]
		internal static extern void Normal3b(sbyte nx, sbyte ny, sbyte nz);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3bv", ExactSpelling=true)]
		internal static extern unsafe void Normal3bv(sbyte* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3d", ExactSpelling=true)]
		internal static extern void Normal3d(double nx, double ny, double nz);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3dv", ExactSpelling=true)]
		internal static extern unsafe void Normal3dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3f", ExactSpelling=true)]
		internal static extern void Normal3f(float nx, float ny, float nz);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3fv", ExactSpelling=true)]
		internal static extern unsafe void Normal3fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3i", ExactSpelling=true)]
		internal static extern void Normal3i(int nx, int ny, int nz);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3iv", ExactSpelling=true)]
		internal static extern unsafe void Normal3iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3s", ExactSpelling=true)]
		internal static extern void Normal3s(short nx, short ny, short nz);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormal3sv", ExactSpelling=true)]
		internal static extern unsafe void Normal3sv(short* v);

		internal delegate void NormalP3ui(uint type, uint coords);

		internal unsafe delegate void NormalP3uiv(uint type, uint* coords);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glNormalPointer", ExactSpelling=true)]
		internal static extern unsafe void NormalPointer(uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glOrtho", ExactSpelling=true)]
		internal static extern void Ortho(double left, double right, double bottom, double top, double zNear, double zFar);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPassThrough", ExactSpelling=true)]
		internal static extern void PassThrough(float token);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelMapfv", ExactSpelling=true)]
		internal static extern unsafe void PixelMapfv(uint map, int mapsize, float* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelMapuiv", ExactSpelling=true)]
		internal static extern unsafe void PixelMapuiv(uint map, int mapsize, uint* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelMapusv", ExactSpelling=true)]
		internal static extern unsafe void PixelMapusv(uint map, int mapsize, ushort* values);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelStoref", ExactSpelling=true)]
		internal static extern void PixelStoref(uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelStorei", ExactSpelling=true)]
		internal static extern void PixelStorei(uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelTransferf", ExactSpelling=true)]
		internal static extern void PixelTransferf(uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelTransferi", ExactSpelling=true)]
		internal static extern void PixelTransferi(uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPixelZoom", ExactSpelling=true)]
		internal static extern void PixelZoom(float xfactor, float yfactor);

		internal delegate void PointParameterf(uint pname, float param);

		internal unsafe delegate void PointParameterfv(uint pname, float* @params);

		internal delegate void PointParameteri(uint pname, int param);

		internal unsafe delegate void PointParameteriv(uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPointSize", ExactSpelling=true)]
		internal static extern void PointSize(float size);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPolygonMode", ExactSpelling=true)]
		internal static extern void PolygonMode(uint face, uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPolygonOffset", ExactSpelling=true)]
		internal static extern void PolygonOffset(float factor, float units);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPolygonStipple", ExactSpelling=true)]
		internal static extern unsafe void PolygonStipple(byte* mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPopAttrib", ExactSpelling=true)]
		internal static extern void PopAttrib();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPopClientAttrib", ExactSpelling=true)]
		internal static extern void PopClientAttrib();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPopMatrix", ExactSpelling=true)]
		internal static extern void PopMatrix();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPopName", ExactSpelling=true)]
		internal static extern void PopName();

		internal delegate void PrimitiveRestartIndex(uint index);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPrioritizeTextures", ExactSpelling=true)]
		internal static extern unsafe void PrioritizeTextures(int n, uint* textures, float* priorities);

		internal delegate void ProvokingVertex(uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPushAttrib", ExactSpelling=true)]
		internal static extern void PushAttrib(uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPushClientAttrib", ExactSpelling=true)]
		internal static extern void PushClientAttrib(uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPushMatrix", ExactSpelling=true)]
		internal static extern void PushMatrix();

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glPushName", ExactSpelling=true)]
		internal static extern void PushName(uint name);

		internal delegate void QueryCounter(uint id, uint target);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2d", ExactSpelling=true)]
		internal static extern void RasterPos2d(double x, double y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2dv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos2dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2f", ExactSpelling=true)]
		internal static extern void RasterPos2f(float x, float y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2fv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos2fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2i", ExactSpelling=true)]
		internal static extern void RasterPos2i(int x, int y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2iv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos2iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2s", ExactSpelling=true)]
		internal static extern void RasterPos2s(short x, short y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos2sv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos2sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3d", ExactSpelling=true)]
		internal static extern void RasterPos3d(double x, double y, double z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3dv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos3dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3f", ExactSpelling=true)]
		internal static extern void RasterPos3f(float x, float y, float z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3fv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos3fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3i", ExactSpelling=true)]
		internal static extern void RasterPos3i(int x, int y, int z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3iv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos3iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3s", ExactSpelling=true)]
		internal static extern void RasterPos3s(short x, short y, short z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos3sv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos3sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4d", ExactSpelling=true)]
		internal static extern void RasterPos4d(double x, double y, double z, double w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4dv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos4dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4f", ExactSpelling=true)]
		internal static extern void RasterPos4f(float x, float y, float z, float w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4fv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos4fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4i", ExactSpelling=true)]
		internal static extern void RasterPos4i(int x, int y, int z, int w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4iv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos4iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4s", ExactSpelling=true)]
		internal static extern void RasterPos4s(short x, short y, short z, short w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRasterPos4sv", ExactSpelling=true)]
		internal static extern unsafe void RasterPos4sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glReadBuffer", ExactSpelling=true)]
		internal static extern void ReadBuffer(uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glReadPixels", ExactSpelling=true)]
		internal static extern unsafe void ReadPixels(int x, int y, int width, int height, uint format, uint type, [Out] IntPtr pixels);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectd", ExactSpelling=true)]
		internal static extern void Rectd(double x1, double y1, double x2, double y2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectdv", ExactSpelling=true)]
		internal static extern unsafe void Rectdv(double* v1, double* v2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectf", ExactSpelling=true)]
		internal static extern void Rectf(float x1, float y1, float x2, float y2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectfv", ExactSpelling=true)]
		internal static extern unsafe void Rectfv(float* v1, float* v2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRecti", ExactSpelling=true)]
		internal static extern void Recti(int x1, int y1, int x2, int y2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectiv", ExactSpelling=true)]
		internal static extern unsafe void Rectiv(int* v1, int* v2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRects", ExactSpelling=true)]
		internal static extern void Rects(short x1, short y1, short x2, short y2);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRectsv", ExactSpelling=true)]
		internal static extern unsafe void Rectsv(short* v1, short* v2);

		internal delegate void RenderbufferStorage(uint target, uint internalformat, int width, int height);

		internal delegate void RenderbufferStorageMultisample(uint target, int samples, uint internalformat, int width, int height);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRenderMode", ExactSpelling=true)]
		internal static extern int RenderMode(uint mode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRotated", ExactSpelling=true)]
		internal static extern void Rotated(double angle, double x, double y, double z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glRotatef", ExactSpelling=true)]
		internal static extern void Rotatef(float angle, float x, float y, float z);

		internal delegate void SampleCoverage(float value, bool invert);

		internal delegate void SampleMaski(uint index, uint mask);

		internal delegate void SamplerParameterf(uint sampler, uint pname, float param);

		internal unsafe delegate void SamplerParameterfv(uint sampler, uint pname, float* param);

		internal delegate void SamplerParameteri(uint sampler, uint pname, int param);

		internal unsafe delegate void SamplerParameterIiv(uint sampler, uint pname, int* param);

		internal unsafe delegate void SamplerParameterIuiv(uint sampler, uint pname, uint* param);

		internal unsafe delegate void SamplerParameteriv(uint sampler, uint pname, int* param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glScaled", ExactSpelling=true)]
		internal static extern void Scaled(double x, double y, double z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glScalef", ExactSpelling=true)]
		internal static extern void Scalef(float x, float y, float z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glScissor", ExactSpelling=true)]
		internal static extern void Scissor(int x, int y, int width, int height);

		internal delegate void SecondaryColor3b(sbyte red, sbyte green, sbyte blue);

		internal unsafe delegate void SecondaryColor3bv(sbyte* v);

		internal delegate void SecondaryColor3d(double red, double green, double blue);

		internal unsafe delegate void SecondaryColor3dv(double* v);

		internal delegate void SecondaryColor3f(float red, float green, float blue);

		internal unsafe delegate void SecondaryColor3fv(float* v);

		internal delegate void SecondaryColor3i(int red, int green, int blue);

		internal unsafe delegate void SecondaryColor3iv(int* v);

		internal delegate void SecondaryColor3s(short red, short green, short blue);

		internal unsafe delegate void SecondaryColor3sv(short* v);

		internal delegate void SecondaryColor3ub(byte red, byte green, byte blue);

		internal unsafe delegate void SecondaryColor3ubv(byte* v);

		internal delegate void SecondaryColor3ui(uint red, uint green, uint blue);

		internal unsafe delegate void SecondaryColor3uiv(uint* v);

		internal delegate void SecondaryColor3us(ushort red, ushort green, ushort blue);

		internal unsafe delegate void SecondaryColor3usv(ushort* v);

		internal delegate void SecondaryColorP3ui(uint type, uint color);

		internal unsafe delegate void SecondaryColorP3uiv(uint type, uint* color);

		internal unsafe delegate void SecondaryColorPointer(int size, uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glSelectBuffer", ExactSpelling=true)]
		internal static extern unsafe void SelectBuffer(int size, [Out] uint* buffer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glShadeModel", ExactSpelling=true)]
		internal static extern void ShadeModel(uint mode);

		internal unsafe delegate void ShaderSource(uint shader, int count, string[] @string, int* length);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glStencilFunc", ExactSpelling=true)]
		internal static extern void StencilFunc(uint func, int @ref, uint mask);

		internal delegate void StencilFuncSeparate(uint face, uint func, int @ref, uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glStencilMask", ExactSpelling=true)]
		internal static extern void StencilMask(uint mask);

		internal delegate void StencilMaskSeparate(uint face, uint mask);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glStencilOp", ExactSpelling=true)]
		internal static extern void StencilOp(uint fail, uint zfail, uint zpass);

		internal delegate void StencilOpSeparate(uint face, uint sfail, uint dpfail, uint dppass);

		internal delegate void TexBuffer(uint target, uint internalformat, uint buffer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1d", ExactSpelling=true)]
		internal static extern void TexCoord1d(double s);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1dv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord1dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1f", ExactSpelling=true)]
		internal static extern void TexCoord1f(float s);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1fv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord1fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1i", ExactSpelling=true)]
		internal static extern void TexCoord1i(int s);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1iv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord1iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1s", ExactSpelling=true)]
		internal static extern void TexCoord1s(short s);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord1sv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord1sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2d", ExactSpelling=true)]
		internal static extern void TexCoord2d(double s, double t);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2dv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord2dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2f", ExactSpelling=true)]
		internal static extern void TexCoord2f(float s, float t);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2fv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord2fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2i", ExactSpelling=true)]
		internal static extern void TexCoord2i(int s, int t);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2iv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord2iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2s", ExactSpelling=true)]
		internal static extern void TexCoord2s(short s, short t);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord2sv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord2sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3d", ExactSpelling=true)]
		internal static extern void TexCoord3d(double s, double t, double r);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3dv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord3dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3f", ExactSpelling=true)]
		internal static extern void TexCoord3f(float s, float t, float r);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3fv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord3fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3i", ExactSpelling=true)]
		internal static extern void TexCoord3i(int s, int t, int r);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3iv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord3iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3s", ExactSpelling=true)]
		internal static extern void TexCoord3s(short s, short t, short r);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord3sv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord3sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4d", ExactSpelling=true)]
		internal static extern void TexCoord4d(double s, double t, double r, double q);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4dv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord4dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4f", ExactSpelling=true)]
		internal static extern void TexCoord4f(float s, float t, float r, float q);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4fv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord4fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4i", ExactSpelling=true)]
		internal static extern void TexCoord4i(int s, int t, int r, int q);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4iv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord4iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4s", ExactSpelling=true)]
		internal static extern void TexCoord4s(short s, short t, short r, short q);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoord4sv", ExactSpelling=true)]
		internal static extern unsafe void TexCoord4sv(short* v);

		internal delegate void TexCoordP1ui(uint type, uint coords);

		internal unsafe delegate void TexCoordP1uiv(uint type, uint* coords);

		internal delegate void TexCoordP2ui(uint type, uint coords);

		internal unsafe delegate void TexCoordP2uiv(uint type, uint* coords);

		internal delegate void TexCoordP3ui(uint type, uint coords);

		internal unsafe delegate void TexCoordP3uiv(uint type, uint* coords);

		internal delegate void TexCoordP4ui(uint type, uint coords);

		internal unsafe delegate void TexCoordP4uiv(uint type, uint* coords);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexCoordPointer", ExactSpelling=true)]
		internal static extern unsafe void TexCoordPointer(int size, uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexEnvf", ExactSpelling=true)]
		internal static extern void TexEnvf(uint target, uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexEnvfv", ExactSpelling=true)]
		internal static extern unsafe void TexEnvfv(uint target, uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexEnvi", ExactSpelling=true)]
		internal static extern void TexEnvi(uint target, uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexEnviv", ExactSpelling=true)]
		internal static extern unsafe void TexEnviv(uint target, uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGend", ExactSpelling=true)]
		internal static extern void TexGend(uint coord, uint pname, double param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGendv", ExactSpelling=true)]
		internal static extern unsafe void TexGendv(uint coord, uint pname, double* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGenf", ExactSpelling=true)]
		internal static extern void TexGenf(uint coord, uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGenfv", ExactSpelling=true)]
		internal static extern unsafe void TexGenfv(uint coord, uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGeni", ExactSpelling=true)]
		internal static extern void TexGeni(uint coord, uint pname, int param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexGeniv", ExactSpelling=true)]
		internal static extern unsafe void TexGeniv(uint coord, uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexImage1D", ExactSpelling=true)]
		internal static extern unsafe void TexImage1D(uint target, int level, int internalformat, int width, int border, uint format, uint type, IntPtr pixels);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexImage2D", ExactSpelling=true)]
		internal static extern unsafe void TexImage2D(uint target, int level, int internalformat, int width, int height, int border, uint format, uint type, IntPtr pixels);

		internal delegate void TexImage2DMultisample(uint target, int samples, int internalformat, int width, int height, bool fixedsamplelocations);

		internal unsafe delegate void TexImage3D(uint target, int level, int internalformat, int width, int height, int depth, int border, uint format, uint type, IntPtr pixels);

		internal delegate void TexImage3DMultisample(uint target, int samples, int internalformat, int width, int height, int depth, bool fixedsamplelocations);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexParameterf", ExactSpelling=true)]
		internal static extern void TexParameterf(uint target, uint pname, float param);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexParameterfv", ExactSpelling=true)]
		internal static extern unsafe void TexParameterfv(uint target, uint pname, float* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexParameteri", ExactSpelling=true)]
		internal static extern void TexParameteri(uint target, uint pname, int param);

		internal unsafe delegate void TexParameterIiv(uint target, uint pname, int* @params);

		internal unsafe delegate void TexParameterIuiv(uint target, uint pname, uint* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexParameteriv", ExactSpelling=true)]
		internal static extern unsafe void TexParameteriv(uint target, uint pname, int* @params);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexSubImage1D", ExactSpelling=true)]
		internal static extern unsafe void TexSubImage1D(uint target, int level, int xoffset, int width, uint format, uint type, IntPtr pixels);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTexSubImage2D", ExactSpelling=true)]
		internal static extern unsafe void TexSubImage2D(uint target, int level, int xoffset, int yoffset, int width, int height, uint format, uint type, IntPtr pixels);

		internal unsafe delegate void TexSubImage3D(uint target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, uint format, uint type, IntPtr pixels);

		internal unsafe delegate void TransformFeedbackVaryings(uint program, int count, string[] varyings, uint bufferMode);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTranslated", ExactSpelling=true)]
		internal static extern void Translated(double x, double y, double z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glTranslatef", ExactSpelling=true)]
		internal static extern void Translatef(float x, float y, float z);

		internal delegate void Uniform1f(int location, float v0);

		internal unsafe delegate void Uniform1fv(int location, int count, float* value);

		internal delegate void Uniform1i(int location, int v0);

		internal unsafe delegate void Uniform1iv(int location, int count, int* value);

		internal delegate void Uniform1ui(int location, uint v0);

		internal unsafe delegate void Uniform1uiv(int location, int count, uint* value);

		internal delegate void Uniform2f(int location, float v0, float v1);

		internal unsafe delegate void Uniform2fv(int location, int count, float* value);

		internal delegate void Uniform2i(int location, int v0, int v1);

		internal unsafe delegate void Uniform2iv(int location, int count, int* value);

		internal delegate void Uniform2ui(int location, uint v0, uint v1);

		internal unsafe delegate void Uniform2uiv(int location, int count, uint* value);

		internal delegate void Uniform3f(int location, float v0, float v1, float v2);

		internal unsafe delegate void Uniform3fv(int location, int count, float* value);

		internal delegate void Uniform3i(int location, int v0, int v1, int v2);

		internal unsafe delegate void Uniform3iv(int location, int count, int* value);

		internal delegate void Uniform3ui(int location, uint v0, uint v1, uint v2);

		internal unsafe delegate void Uniform3uiv(int location, int count, uint* value);

		internal delegate void Uniform4f(int location, float v0, float v1, float v2, float v3);

		internal unsafe delegate void Uniform4fv(int location, int count, float* value);

		internal delegate void Uniform4i(int location, int v0, int v1, int v2, int v3);

		internal unsafe delegate void Uniform4iv(int location, int count, int* value);

		internal delegate void Uniform4ui(int location, uint v0, uint v1, uint v2, uint v3);

		internal unsafe delegate void Uniform4uiv(int location, int count, uint* value);

		internal delegate void UniformBlockBinding(uint program, uint uniformBlockIndex, uint uniformBlockBinding);

		internal unsafe delegate void UniformMatrix2fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix2x3fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix2x4fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix3fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix3x2fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix3x4fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix4fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix4x2fv(int location, int count, bool transpose, float* value);

		internal unsafe delegate void UniformMatrix4x3fv(int location, int count, bool transpose, float* value);

		internal delegate bool UnmapBuffer(uint target);

		internal delegate void UseProgram(uint program);

		internal delegate void ValidateProgram(uint program);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2d", ExactSpelling=true)]
		internal static extern void Vertex2d(double x, double y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2dv", ExactSpelling=true)]
		internal static extern unsafe void Vertex2dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2f", ExactSpelling=true)]
		internal static extern void Vertex2f(float x, float y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2fv", ExactSpelling=true)]
		internal static extern unsafe void Vertex2fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2i", ExactSpelling=true)]
		internal static extern void Vertex2i(int x, int y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2iv", ExactSpelling=true)]
		internal static extern unsafe void Vertex2iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2s", ExactSpelling=true)]
		internal static extern void Vertex2s(short x, short y);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex2sv", ExactSpelling=true)]
		internal static extern unsafe void Vertex2sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3d", ExactSpelling=true)]
		internal static extern void Vertex3d(double x, double y, double z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3dv", ExactSpelling=true)]
		internal static extern unsafe void Vertex3dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3f", ExactSpelling=true)]
		internal static extern void Vertex3f(float x, float y, float z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3fv", ExactSpelling=true)]
		internal static extern unsafe void Vertex3fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3i", ExactSpelling=true)]
		internal static extern void Vertex3i(int x, int y, int z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3iv", ExactSpelling=true)]
		internal static extern unsafe void Vertex3iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3s", ExactSpelling=true)]
		internal static extern void Vertex3s(short x, short y, short z);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex3sv", ExactSpelling=true)]
		internal static extern unsafe void Vertex3sv(short* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4d", ExactSpelling=true)]
		internal static extern void Vertex4d(double x, double y, double z, double w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4dv", ExactSpelling=true)]
		internal static extern unsafe void Vertex4dv(double* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4f", ExactSpelling=true)]
		internal static extern void Vertex4f(float x, float y, float z, float w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4fv", ExactSpelling=true)]
		internal static extern unsafe void Vertex4fv(float* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4i", ExactSpelling=true)]
		internal static extern void Vertex4i(int x, int y, int z, int w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4iv", ExactSpelling=true)]
		internal static extern unsafe void Vertex4iv(int* v);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4s", ExactSpelling=true)]
		internal static extern void Vertex4s(short x, short y, short z, short w);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertex4sv", ExactSpelling=true)]
		internal static extern unsafe void Vertex4sv(short* v);

		internal delegate void VertexAttrib1d(uint index, double x);

		internal unsafe delegate void VertexAttrib1dv(uint index, double* v);

		internal delegate void VertexAttrib1f(uint index, float x);

		internal unsafe delegate void VertexAttrib1fv(uint index, float* v);

		internal delegate void VertexAttrib1s(uint index, short x);

		internal unsafe delegate void VertexAttrib1sv(uint index, short* v);

		internal delegate void VertexAttrib2d(uint index, double x, double y);

		internal unsafe delegate void VertexAttrib2dv(uint index, double* v);

		internal delegate void VertexAttrib2f(uint index, float x, float y);

		internal unsafe delegate void VertexAttrib2fv(uint index, float* v);

		internal delegate void VertexAttrib2s(uint index, short x, short y);

		internal unsafe delegate void VertexAttrib2sv(uint index, short* v);

		internal delegate void VertexAttrib3d(uint index, double x, double y, double z);

		internal unsafe delegate void VertexAttrib3dv(uint index, double* v);

		internal delegate void VertexAttrib3f(uint index, float x, float y, float z);

		internal unsafe delegate void VertexAttrib3fv(uint index, float* v);

		internal delegate void VertexAttrib3s(uint index, short x, short y, short z);

		internal unsafe delegate void VertexAttrib3sv(uint index, short* v);

		internal unsafe delegate void VertexAttrib4bv(uint index, sbyte* v);

		internal delegate void VertexAttrib4d(uint index, double x, double y, double z, double w);

		internal unsafe delegate void VertexAttrib4dv(uint index, double* v);

		internal delegate void VertexAttrib4f(uint index, float x, float y, float z, float w);

		internal unsafe delegate void VertexAttrib4fv(uint index, float* v);

		internal unsafe delegate void VertexAttrib4iv(uint index, int* v);

		internal unsafe delegate void VertexAttrib4Nbv(uint index, sbyte* v);

		internal unsafe delegate void VertexAttrib4Niv(uint index, int* v);

		internal unsafe delegate void VertexAttrib4Nsv(uint index, short* v);

		internal delegate void VertexAttrib4Nub(uint index, byte x, byte y, byte z, byte w);

		internal unsafe delegate void VertexAttrib4Nubv(uint index, byte* v);

		internal unsafe delegate void VertexAttrib4Nuiv(uint index, uint* v);

		internal unsafe delegate void VertexAttrib4Nusv(uint index, ushort* v);

		internal delegate void VertexAttrib4s(uint index, short x, short y, short z, short w);

		internal unsafe delegate void VertexAttrib4sv(uint index, short* v);

		internal unsafe delegate void VertexAttrib4ubv(uint index, byte* v);

		internal unsafe delegate void VertexAttrib4uiv(uint index, uint* v);

		internal unsafe delegate void VertexAttrib4usv(uint index, ushort* v);

		internal delegate void VertexAttribDivisor(uint index, uint divisor);

		internal delegate void VertexAttribI1i(uint index, int x);

		internal unsafe delegate void VertexAttribI1iv(uint index, int* v);

		internal delegate void VertexAttribI1ui(uint index, uint x);

		internal unsafe delegate void VertexAttribI1uiv(uint index, uint* v);

		internal delegate void VertexAttribI2i(uint index, int x, int y);

		internal unsafe delegate void VertexAttribI2iv(uint index, int* v);

		internal delegate void VertexAttribI2ui(uint index, uint x, uint y);

		internal unsafe delegate void VertexAttribI2uiv(uint index, uint* v);

		internal delegate void VertexAttribI3i(uint index, int x, int y, int z);

		internal unsafe delegate void VertexAttribI3iv(uint index, int* v);

		internal delegate void VertexAttribI3ui(uint index, uint x, uint y, uint z);

		internal unsafe delegate void VertexAttribI3uiv(uint index, uint* v);

		internal unsafe delegate void VertexAttribI4bv(uint index, sbyte* v);

		internal delegate void VertexAttribI4i(uint index, int x, int y, int z, int w);

		internal unsafe delegate void VertexAttribI4iv(uint index, int* v);

		internal unsafe delegate void VertexAttribI4sv(uint index, short* v);

		internal unsafe delegate void VertexAttribI4ubv(uint index, byte* v);

		internal delegate void VertexAttribI4ui(uint index, uint x, uint y, uint z, uint w);

		internal unsafe delegate void VertexAttribI4uiv(uint index, uint* v);

		internal unsafe delegate void VertexAttribI4usv(uint index, ushort* v);

		internal unsafe delegate void VertexAttribIPointer(uint index, int size, uint type, int stride, IntPtr pointer);

		internal delegate void VertexAttribP1ui(uint index, uint type, bool normalized, uint value);

		internal unsafe delegate void VertexAttribP1uiv(uint index, uint type, bool normalized, uint* value);

		internal delegate void VertexAttribP2ui(uint index, uint type, bool normalized, uint value);

		internal unsafe delegate void VertexAttribP2uiv(uint index, uint type, bool normalized, uint* value);

		internal delegate void VertexAttribP3ui(uint index, uint type, bool normalized, uint value);

		internal unsafe delegate void VertexAttribP3uiv(uint index, uint type, bool normalized, uint* value);

		internal delegate void VertexAttribP4ui(uint index, uint type, bool normalized, uint value);

		internal unsafe delegate void VertexAttribP4uiv(uint index, uint type, bool normalized, uint* value);

		internal unsafe delegate void VertexAttribPointer(uint index, int size, uint type, bool normalized, int stride, IntPtr pointer);

		internal delegate void VertexP2ui(uint type, uint value);

		internal unsafe delegate void VertexP2uiv(uint type, uint* value);

		internal delegate void VertexP3ui(uint type, uint value);

		internal unsafe delegate void VertexP3uiv(uint type, uint* value);

		internal delegate void VertexP4ui(uint type, uint value);

		internal unsafe delegate void VertexP4uiv(uint type, uint* value);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glVertexPointer", ExactSpelling=true)]
		internal static extern unsafe void VertexPointer(int size, uint type, int stride, IntPtr pointer);

		[System.Runtime.InteropServices.DllImport(Library, EntryPoint="glViewport", ExactSpelling=true)]
		internal static extern void Viewport(int x, int y, int width, int height);

		internal delegate void WaitSync(IntPtr sync, uint flags, ulong timeout);

		internal delegate void WindowPos2d(double x, double y);

		internal unsafe delegate void WindowPos2dv(double* v);

		internal delegate void WindowPos2f(float x, float y);

		internal unsafe delegate void WindowPos2fv(float* v);

		internal delegate void WindowPos2i(int x, int y);

		internal unsafe delegate void WindowPos2iv(int* v);

		internal delegate void WindowPos2s(short x, short y);

		internal unsafe delegate void WindowPos2sv(short* v);

		internal delegate void WindowPos3d(double x, double y, double z);

		internal unsafe delegate void WindowPos3dv(double* v);

		internal delegate void WindowPos3f(float x, float y, float z);

		internal unsafe delegate void WindowPos3fv(float* v);

		internal delegate void WindowPos3i(int x, int y, int z);

		internal unsafe delegate void WindowPos3iv(int* v);

		internal delegate void WindowPos3s(short x, short y, short z);

		internal unsafe delegate void WindowPos3sv(short* v);

	}
}
